package com.ruyuan.rapid.common.concurrent.queue.flusher;

public interface Flusher<E> {

    /**
     * 添加元素
     * @param e
     */
    void add(E e);

    /**
     * 添加多个元素
     * @param e
     */
    void add(E ... e);

    /**
     * 尝试添加元素，成功返回true， 失败返回false
     * @param e
     * @return
     */
    boolean tryAdd(E e);

    /**
     * 尝试添加多个元素，成功返回true， 失败返回false
     * @param e
     * @return
     */
    boolean tryAdd(E ... e);


    /**
     * <B>方法名称：</B>isShutdown<BR>
     * <B>概要说明：</B>isShutdown<BR>
     * @author JiFeng
     * @since 2021年12月7日 上午12:23:43
     * @return
     */
    boolean isShutdown();

    /**
     * <B>方法名称：</B>start<BR>
     * <B>概要说明：</B>start<BR>
     * @author JiFeng
     * @since 2021年12月7日 上午12:23:48
     */
    void start();

    /**
     * <B>方法名称：</B>shutdown<BR>
     * <B>概要说明：</B>shutdown<BR>
     * @author JiFeng
     * @since 2021年12月7日 上午12:23:53
     */
    void shutdown();

}
